1. Field of the Invention
The present invention is related to the field of telephony using a packet network protocol, and more specifically to devices, software and methods for encoding voice data to conceal packet loss.
2. Description of the Related Art
The internet is used for telephony, in addition to sending data. Accordingly, voice is encoded into digital data, the data is arranged in packets, and the packets are transmitted to the recipient over a network. This process has to happen in real time, which means that the familiar Transmission Control Protocol/Internet Protocol (TCP/IP) can not be used. Instead, other protocols are used, which permit real time use, such as the Uniform Datagram Protocol (UDP).
A disadvantage of protocols that permit real time use is that they are unreliable, in that they permit packets to be lost, without retrieving them. When that happens, the voice segments they were carrying are not reconstructed, and the recipient hears annoying gaps in speech. These gaps are perceived as reduced quality of service.
In order to conceal the fact that a packet has been lost, schemes have been devised that are called Packet Loss Concealment (PLC) schemes. According to PLC schemes, packets are generated at the receiver and played to the recipient as substitute voice. This way, at least no gap is heard in the reconstructed voice.
The simplest PLC scheme is called blind PLC, and consists of repeating to the recipient the last frame. Instead of a gap, the recipient hears the last sound extended by a little bit. This works well, to the extent that the lost packets are assumed distributed uniformly within the speech data sequence. This way, every lost packet can be reconstructed from its the previous one, which has been assumed to not be lost.
Blind PLC is unsatisfactory, because packets are not lost uniformly with time. Rather, packets tend to get lost in groups, which are called bursts. While the first few packets of the burst will be reconstructed without too much annoyance, the subsequent ones will not. If blind PLC is used, it will prolong a sound more than just a little bit. That will be more annoying.
Another PLC scheme is to merely send out redundant packets. If a packet is lost, its data is recovered from its corresponding redundant packet, which is hopefully not lost. Sending redundant packets, however, consumes substantial network bandwidth.